from django.core.management.base import BaseCommand
from spark.models import VoiceProfile


class Command(BaseCommand):
    help = '初始化默认的语音配置文件'

    def handle(self, *args, **options):
        """创建默认的语音配置"""
        voice_profiles = [
            {
                'name': '男声1号',
                'voice_type': 'male_1',
                'description': '成熟稳重的男声，适合正式场合',
                'xunfei_vcn': 'xiaoyan',
                'speed': 1.0,
                'pitch': 1.0,
                'volume': 1.0,
            },
            {
                'name': '男声2号',
                'voice_type': 'male_2',
                'description': '年轻活力的男声，语速适中',
                'xunfei_vcn': 'aisjiuxu',
                'speed': 1.1,
                'pitch': 1.1,
                'volume': 1.0,
            },
            {
                'name': '男声3号',
                'voice_type': 'male_3',
                'description': '温和亲切的男声，适合友好交流',
                'xunfei_vcn': 'aisxping',
                'speed': 0.9,
                'pitch': 0.9,
                'volume': 1.0,
            },
            {
                'name': '女声1号',
                'voice_type': 'female_1',
                'description': '专业干练的女声，适合商务场合',
                'xunfei_vcn': 'x4_lingxiaoxuan_oral',
                'speed': 1.0,
                'pitch': 1.0,
                'volume': 1.0,
            },
            {
                'name': '女声2号',
                'voice_type': 'female_2',
                'description': '温柔甜美的女声，亲和力强',
                'xunfei_vcn': 'aisjinger',
                'speed': 0.95,
                'pitch': 1.05,
                'volume': 1.0,
            },
            {
                'name': '女声3号',
                'voice_type': 'female_3',
                'description': '清晰明快的女声，语速较快',
                'xunfei_vcn': 'vinn',
                'speed': 1.15,
                'pitch': 1.0,
                'volume': 1.0,
            },
        ]

        created_count = 0
        for profile_data in voice_profiles:
            voice_type = profile_data['voice_type']
            
            # 检查是否已存在
            if VoiceProfile.objects.filter(voice_type=voice_type).exists():
                self.stdout.write(
                    self.style.WARNING(f'语音配置 {profile_data["name"]} 已存在，跳过创建')
                )
                continue
            
            # 创建语音配置
            VoiceProfile.objects.create(**profile_data)
            created_count += 1
            
            self.stdout.write(
                self.style.SUCCESS(
                    f'成功创建语音配置: {profile_data["name"]} ({voice_type})'
                )
            )
        
        self.stdout.write(
            self.style.SUCCESS(f'\n语音配置初始化完成！共创建了 {created_count} 个新配置。')
        )
        
        # 显示所有可用的语音配置
        self.stdout.write(
            self.style.SUCCESS('\n=== 当前可用的语音配置 ===')
        )
        for profile in VoiceProfile.objects.filter(is_active=True):
            self.stdout.write(f'  {profile.name} ({profile.voice_type}) - {profile.description}') 